class: inverse,left, middle background-image: url(data:image/png;base64,#background.png) background-size: cover <img src="data:image/png;base64,#LOGO_DIPLOMADO.png" width="500px"/> ##Módulo 3: Aplicaciones ### Aplicaciones (Parte 1) MatÃas Olea <br> <a href="https://orcid.org/0000-0003-0194-7784"> ORCID </a><br> matias.olea@pucv.cl</a><br> .large[<b><a href="https://www.pucv.cl/uuaa/site/edic/base/port/labgrs.html">LabGRS</a> | Septiembre 2022</b>] <br> --- class: center,middle background-image: url(data:image/png;base64,#labgrs_logo.png) background-size: 35% --- ## ¿Qué aprenderemos en esta unidad? Aprenderemos ... -- 1) Indices espectrales. -- 2) Clasificación no supervisada. -- 3) Clasificación supervisadas. -- 4) Detección y análisis de cambios. --- #### Indices espectrales Los **Ãndices** son operaciones matemáticas aplicadas a las bandas espectrales, que permiten discriminar con mayor claridad algunos elementos presentes en una imagen. Al ser **Ãndices espectrales**, es muy importante conocer la firma espectral (o signatura espectral) del objeto que se quiere estudiar para entender la lógica detrás del Ãndice aplicado. Por lo general, los Ãndices espectrales se basan en las regiones de mayor y menor absorción, o de mayor y menor reflexión. <center><img src="data:image/png;base64,#imagen1.png" width="800px"/></center> --- #### Firmas espectrales: vegetación <center><img src="data:image/png;base64,#imagen2.png" width="1200px"/></center> --- #### Firmas espectrales: variaciones en vegetación <center><img src="data:image/png;base64,#imagen3.png" width="1200px"/></center> --- #### Firmas espectrales: vegetacion desde satélites <center><img src="data:image/png;base64,#lanvege.png" width="800px"/></center> .footnote[ <span style="font-size:9pt"> Ejemplos de Firma espectral desde Landsat 8 </span> ] --- #### Firmas espectrales: agua y nieve <center><img src="data:image/png;base64,#imagen4.png" width="1200px"/></center> .footnote[ <span style="font-size:9pt"> Ilustración: USGS </span> ] --- #### Firmas espectrales: variaciones en agua <center><img src="data:image/png;base64,#imagen5.png" width="800px"/></center> .footnote[ <span style="font-size:9pt"> Ilustración: Mascarenhas & Keck, 2018. </span> ] --- #### Firmas espectrales: variaciones en agua <center><img src="data:image/png;base64,#imagen6.png" width="800px"/></center> .footnote[ <span style="font-size:9pt"> Ilustración: Mascarenhas & Keck, 2018. </span> ] --- #### Firmas espectrales: variaciones en agua desde satélites <center><img src="data:image/png;base64,#firma_agua.jpg" width="600px"/></center> .footnote[ <span style="font-size:9pt"> Ejemplos de Firma espectral desde Sentinel-2 </span> ] --- #### Firmas espectrales: variaciones en nieve <center><img src="data:image/png;base64,#imagen7.png" width="800px"/></center> .footnote[ <span style="font-size:9pt"> Ilustración: Biermann et al. (2020). </span> ] --- #### Firmas espectrales: variaciones en nieve desde satélites <center><img src="data:image/png;base64,#imagen8.png" width="450px"/></center> .footnote[ <span style="font-size:9pt"> Ejemplos de Firma espectral desde Landsat 8 </span> ] --- #### Indices espectrales Los Ãndices espectrales corresponden a una de las formas más sencillas de obtener información cuantitativa a partir de una imagen satelital. Entre los dos grandes grupos de Ãndices, están los de diferencia normalizada y los no normalizados. **Diferencia normalizada**: Se basan en la resta de dos bandas (espectros) que son opuestos en términos de reflectancia. Es decir, resta la banda espectral donde el objeto estudiado tiene mayor % de reflectancia, con la que tiene menor reflectancia. Luego divide este valor por la suma de ambas bandas. Este cociente u operación de bandas, permite tener como resultado valores de un Ãndice que van desde el -1 hasta el +1, donde los valores positivos más altos evidencian zonas donde el objeto que estamos estudiando se concentra con mayor abundancia. **No normalizados**: Éstos a diferencia de los normalizados, no tienen un rango definido pueden alcanzar o superar el valor ±1 y la interpretación de los resultados va a depender de la operación que se realice, por lo que tanto los valores positivos o negativos pueden representar el objeto que se está estudiando. En este tipo de Ãndices, no necesariamente se trabaja con solamente un par de bandas espectrales. --- ### Ejemplos de Ãndices <center><img src="data:image/png;base64,#indices.png" width="900px"/></center> --- ### Ejemplos de Ãndices <center><img src="data:image/png;base64,#saturacion.jpg" width="700px"/></center> .footnote[ <span style="font-size:9pt"> Chávez R.O. et al. (2013) </span> ] --- ### Ejemplos de Ãndices: NDVI <center><img src="data:image/png;base64,#ndvi.png" width="900px"/></center> --- ### Ejemplos de Ãndices: NDSI <center><img src="data:image/png;base64,#ndsi.png" width="900px"/></center> --- ### Ejemplos de Ãndices: NDWI <center><img src="data:image/png;base64,#ndwi.png" width="900px"/></center> --- ### Ejemplos de Ãndices: ICEDEX <center><img src="data:image/png;base64,#icedex.png" width="900px"/></center> --- ### Aplicando algunos indices en R Ahora para nuestro ejemplo, trabajaremos con la imagen que corregimos en la la clase anterior. Si no pudo realizar el ejercicio, en el Aula Virtual se encuentran los resultados con las 7 bandas espectrales. ```r library(terra) img <- rast("C:/YourFolder/Topocor_20200501_minnaert.tif") plotRGB(img, r=4,g=3,b=2, stretch="lin") ``` <img src="data:image/png;base64,#Aplicaciones_1_files/figure-html/unnamed-chunk-2-1.png" width="100%" /> --- ### Aplicando algunos indices en R ```r ndvi <- (img[[5]]-img[[4]])/(img[[5]]+img[[4]]) plot(ndvi, col=viridis::viridis(9)) ``` <img src="data:image/png;base64,#Aplicaciones_1_files/figure-html/unnamed-chunk-3-1.png" width="100%" /> --- ### Aplicando algunos indices en R ```r icedex <- (img[[5]]/img[[4]])-(img[[5]]/img[[6]]) plot(icedex,range=c(-10,10),col=rev(RColorBrewer::brewer.pal(7,"GnBu"))) ``` <img src="data:image/png;base64,#Aplicaciones_1_files/figure-html/unnamed-chunk-4-1.png" width="100%" /> --- ### Aplicando algunos indices en R ```r ndwi <- (img[[3]]-img[[5]])/(img[[3]]+img[[5]]) plot(ndwi,col=RColorBrewer::brewer.pal(7,"GnBu")) ``` <img src="data:image/png;base64,#Aplicaciones_1_files/figure-html/unnamed-chunk-5-1.png" width="100%" /> --- ### Clasificación de imagenes Las clasificaciones en imagenes espectrales o conjuntos de ráster, nos permiten agrupar pixeles en categorÃas según semejanza o según criterios del usuario. En este sentido, en la literatura nos encontraremos 2 tipos de clasificaciones de imágenes: **Supervisadas** y **No supervisadas**. - **Supervisadas**: como su nombre lo indica, depende de la "supervisión" de un usuario con conocimientos del área a clasificar. El usuario es quien define la cantidad de clases y genera puntos de entranamiento que alimentan al algoritmo que determina la clase a la que pertenece cada pixel en virtud de ello. - **No Supervisada**: este método clasifica los pixeles, en relación a su semejanza, en _n_ cantidad de clases definidas por el usuario. Aquà no es necesario que el usuario conozca el área de estudio, ya que es el algoritmo quÃen define como se clasifican los pixeles. Comúnmente, esta clasificación es llamada <u>clustering</u>. El uso más común de estas técnicas, es la creación de mapas temáticos de usos de suelo. --- ### Clasificación de imagenes: ventajas -- - Bajo costo y rápida implementación. -- - Fácil de actualizar. -- - Amplia cobertura (espacial). -- - Visión sinóptica del área. -- - Fácil de integrar con GIS. -- - Adquisición de imagenes en lugares inaccesibles. -- - Información espectral en rango no visible para el ojo humano. -- - Resultado final es un mapa fácil de interpretar. --- ### Clasificación de imagenes: desventajas -- - Puede haber un sobre énfasis en ciertos elementos (según critrios del evaluador). -- - Posibles presiciones "infladas". -- - Poca confiabilidad en mediciones realizadas en grandes áreas. -- - falta de observación en ciertas regiones. -- - Dificultades de interpretación en ciertos casos. -- - Requerimiento de procesos de entrenamiento en ciertos casos. --- ### Clasificación No Supervisada ¿Cómo podemos clasificar la foto RGB de este coqueto Guacamayo? <img src="data:image/png;base64,#Aplicaciones_1_files/figure-html/unnamed-chunk-6-1.png" width="100%" /> --- ### Clasificación No Supervisada Veamos que información tiene: ```r guaca <- rast("C:/YourFolder/guacamayo.jpg") guaca df.guaca <- as.data.frame(guaca) # Transformamos nuestro raster a tabla ``` ``` ## class : SpatRaster ## dimensions : 357, 591, 3 (nrow, ncol, nlyr) ## resolution : 0.001692047, 0.00280112 (x, y) ## extent : 0, 1, 0, 1 (xmin, xmax, ymin, ymax) ## coord. ref. : ## source : guacamayo.jpg ## colors RGB : 1, 2, 3 ## names : guacamayo_1, guacamayo_2, guacamayo_3 ``` --- ### Clasificación No Supervisada ```r nrow(df.guaca)*0.05 # Determinamos un n° muestral del 5% ``` ``` ## [1] 10549.35 ``` ```r id.guaca <- sample(c(1:nrow(df.guaca)),size=10550) # determinarmos las filas a muestrear samp.guaca <- df.guaca[id.guaca,] # extraemos la muestra de nuestra tabla ``` ```r View(samp.guaca) ```
--- ### Clasificación No Supervisada <center><img src="data:image/png;base64,#ejemplo.png" width="500px"/></center> --- ### Clasificación No Supervisada <center><img src="data:image/png;base64,#scatter_loro3.png" width="1000px"/></center> --- ### Clasificación No Supervisada con K-means ¿Entonces? ¿En cuantas clases podemos clasificar los pixeles del Guacamayo? -- En esta oportunidad utilizaremos el método de clustering llamado **K-means** -- .pull-left[ a) <center><img src="data:image/png;base64,#a.png" width="150px"/></center> ] -- .pull-right[ b) <center><img src="data:image/png;base64,#b.png" width="150px"/></center> ] -- .pull-left[ c) <center><img src="data:image/png;base64,#c.png" width="150px"/></center> ] -- .pull-right[ d) <center><img src="data:image/png;base64,#d.png" width="150px"/></center> ] --- ### Clasificación No Supervisada con K-means Según esto, ¿en cutantas clases deberÃamos clasificar nuestro guacamayo? -- ```r library(factoextra) fviz_nbclust(samp.guaca, kmeans, method = "wss",print.summary=T) ``` <center><img src="data:image/png;base64,#k-class.png" width="800px"/></center> --- ### Clasificación No Supervisada con K-means --- ### Clasificación No Supervisada con K-means ```r library(RStoolbox) guaca.ras <- raster::stack(guaca) unsuper.guaca <- unsuperClass(guaca.ras, nClasses = 7, nStarts = 25,nSamples = 10000, nIter = 100, clusterMap = T) raster::plot(unsuper.guaca$map,col=rainbow(7),axes=F,legend=F,box=F) ``` <center><img src="data:image/png;base64,#loroclass.png" width="1000px"/></center> --- ### K-means: Lloyd <center><img src="data:image/png;base64,#Lloyd.gif" width="600px"/></center> .footnote[ <span style="font-size:9pt"> Ilustración: Johannes Wohlenberg </span> ] --- ### K-means: MacQueen <center><img src="data:image/png;base64,#MacQueen.gif" width="600px"/></center> .footnote[ <span style="font-size:9pt"> Ilustración: Johannes Wohlenberg </span> ] --- ### K-means: Hartigan-Wong <center><img src="data:image/png;base64,#Hartigan-Wong.gif" width="600px"/></center> .footnote[ <span style="font-size:9pt"> Ilustración: Johannes Wohlenberg </span> ] --- ### BibliografÃa Chuvieco, Emilio (2010). Teledeteccion Ambiental. La Observacion de la Tierra Desde el Espacio. R.O. Chávez, J.G.P.W. Clevers, M. Herold, M. Ortiz, E. Acevedo, Modelling the spectral response of the desert tree Prosopis tamarugo to water stress, International Journal of Applied Earth Observation and Geoinformation, Volume 21. https://doi.org/10.1016/j.jag.2012.08.013. Jia, Xiuping (2006). Remote Sensing Digital Image Analysis: An Introduction. 10.1007/3-540-29711-1. Thenkabail, P.S. (2016) Remote Sensing Handbook Vol. 1: Remotely sensed data characterization, classification, and accuracies. Taylor & Francis Group. Wegmann M., Leutner B., Dech S. (2016) Remote Sensing and GIS for Ecologists Using Open Source Software. Ed. Pelagic --- class: inverse middle 